package src;

public {% if abstract -%} abstract {% endif -%} class {{name}} {% if super_types -%} extends {{super_types}} {% endif -%} {
    {% for attribute in attributes %}
    private {{attribute.type}} {{attribute.name}};
    {%- endfor %}

    public {{name}}() {
    }

    {%- for dependence in dependencies %}
    // TODO: The dependence for {{dependence.class}}, kind={{dependence.kind}}
    {% endfor %}

    {% for attribute in attributes -%}
    public {{attribute.type}} get{{attribute.name | upper_first}}() {
        return {{attribute.name}};
    }
    {% endfor %}

    {%- for attribute in attributes %}
    public void set{{attribute.name | upper_first}}({{ attribute.type }} {{attribute.name}}) {
        this.{{attribute.name}} = {{attribute.name}};
    }
    {% endfor %}

    {%- for operation in operations %}
    public {{operation.return_type}} {{operation.name}}({{operation.param_list}}){

    }
    {% endfor %}
}